﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Drawing;
using System.Net.Mime;
using CommonLibrary.Enumerations;
using System.IO;

namespace CommonLibrary.Interfaces.Emailer
{
    public interface IEmailer
    {
        SmtpClient Server { get; }
        MailAddress FromAddress { get; }

        List<MailAddress> ToAddressList { get; }
        List<MailAddress> CCAddressList { get; }
        List<MailAddress> BCCAddressList { get; }

        List<MailMessage> MailMessageList { get; }
        List<IEmailerSuccess> ResultsList { get; }

        MailMessage CurrentMessage { get; set; }

        bool AddEmailAddress(string emailAddress, EmailAddress emailAddressType, Encoding displayNameEncoder, string emailDisplayName = "");
        bool ValidateEmailAddress(string emailAddress, bool overrideEmailPatternCheck = false, string regexPattern = "");


        bool AddMailMessage(MailMessage emailMessage);

        bool SendAllMessages();
        bool SendCurrentMessage();

        

        bool AttachFile(Stream objectToAttach, ContentType mimeType, string contentID);

        bool ParseKeyValuePair(List<KeyValuePair<string, string>> parseValueList);

        

    }
}
